The following description is provided to assist the understanding of the reader. None of the information provided or references cited is admitted to be prior art.
Virtual computing systems are widely used in a variety of applications. Virtual computing systems include one or more host machines running one or more virtual machines concurrently. The one or more virtual machines utilize the hardware resources of the underlying one or more host machines. Each virtual machine may be configured to run an instance of an operating system. Modern virtual computing systems allow several operating systems and several software applications to be safely run at the same time on the virtual machines of a single host machine, thereby increasing resource utilization and performance efficiency. Each virtual machine is managed by a hypervisor or virtual machine monitor. Occasionally, data for a virtual machine may be migrated from a first storage space to a second storage space, such as for maintenance of the first machine, utilization of particular resources of a second host machine, migration of a virtual machine, etc. Typically, a copy of the data in the first storage space is made, either directly to the destination storage space or to an interim storage space. However, in each of these instances, a full copy of the storage space is made and/or use of the original storage space must be ceased otherwise the resulting copy of the data will differ from the in-use data. Presented herein is a method for migrating virtual machines and respective data of a storage space while permitting use of the data by the virtual machine.